package br.com.megasena.infraestrutura;

import java.util.List;

import br.com.megasena.dominio.Sorteio;
import br.com.megasena.dominio.SorteiosCadastrados;



public class SorteiosCadastradosImpl extends GenericJpaDAO<Sorteio> implements SorteiosCadastrados {
	
	@Override
	public Sorteio procurarPorId(Integer id) {
			return getPojoById(Sorteio.class, id);
	}
	
	public Sorteio procurarPorConcurso(Integer numeroConcurso) {
		return getPurePojo("from Sorteio s where s.concurso = ?1", numeroConcurso);
	}
	
	public void salvar(Sorteio objeto){
		saveOrUpdatePojo(objeto);
	}
	
	public boolean isCadastrado(Integer numeroConcurso){
		return procurarPorConcurso(numeroConcurso) != null;
	}
	
	@Override
	public void adicionar(Sorteio objeto) {
		System.out.println("Cadastrando o concurso: " + objeto.getConcurso());
		try{
			salvar(objeto);
		} catch (Exception e) {
			System.out.println(e);
		}
	}

	@Override
	public void atualizar(Sorteio objeto) {
		updatePojo(objeto);
	}
	
	public void remover(Sorteio objeto){
		removePojo(objeto);
	}
	
	public List<Sorteio> listar(){
		return getListPojos(Sorteio.class, "from Sorteio objeto");
	}

	@Override
	public Sorteio carregarUltimo() {
		Sorteio ultimoSorteio = new Sorteio();
		for (Sorteio sorteio : listar()) {
			if(sorteio.getConcurso() > ultimoSorteio.getConcurso())
				ultimoSorteio = sorteio;
		}
		
		return ultimoSorteio;
	}
}
